package br.com.carrosvale.model.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import br.com.carrosvale.model.entity.UsuarioPF;
import br.com.carrosvale.model.entity.util.SenhaUtil;
import br.com.carrosvale.model.exceptions.UsuarioJaCadastradoException;
import br.com.carrosvale.model.persistence.UsuarioPFRepository;

@Service
@Transactional(rollbackFor=Exception.class)
public class UsuarioService {

	private UsuarioPFRepository usuarioPFRepository;
	
	public void cadastrar( UsuarioPF usuarioPF ){
		
		UsuarioPF usuarioJaCadastrado = usuarioPFRepository.buscarPorEmail(usuarioPF.getEmail());
		
		if( usuarioJaCadastrado != null ){
			throw new UsuarioJaCadastradoException();
		}
		
		usuarioPF.setSenha( SenhaUtil.encripta(usuarioPF.getSenha()) );
		
		usuarioPFRepository.save(usuarioPF);
	}

	@Autowired
	public void setUsuarioPFRepository(UsuarioPFRepository usuarioPFRepository) {
		this.usuarioPFRepository = usuarioPFRepository;
	}
	
	
}
